Operatoren in JavaWie jede Programmiersprache kannt natürlich auch Java Operatoren. Wie sie funktionieren sollte zum "digitalen Allgemeinwissen" gehören. Hier will ich bloss eine einfache Übersicht, vorallem der Notation, auflisten.
Arithmetische OperatorenIn Java ganz NormalAddition 9 Subtraktion 9 Multiplikation 9 Division 9 Teilerrest 9 Inkrementieren/Dekrementieren int zahl=4; int zahl=4; zahl int zahl=4; int zahl=4; zahl Seitenanfang Operatoren für VergleicheIn Java ganz Normal ausser der "Stolperfalle" 'Unwahr' sie wird '!=' und nicht '<>' dargestelltGleich -> 9 Ungleich -> 9 Grösser als -> 9 Kleiner als -> 9 Grösser oder Gleich als -> 9 Kleiner oder Gleich als -> 9 Seitenanfang Boolische OperatorenWerden meist in der IF Programmsteuerung verwendet. In Java werden Symbole verwendet (andere Sprachen haben z.B. NOT, AND, OR, XOR)Negation (NOT)-> 'Und' (AND) alle Argumente sind wahr-> TRUE 'Oder' (OR) mindestens ein Argument ist wahr -> TRUE Exklusiv oder (XOR), nur ein Argument ist wahr -> TRUE Seitenanfang Operatoren für BitmanipulationJava kennt den Datentyp "byte" nicht wirklich. Der Wert 128 (0b10000000) kann zum Beispiel nicht zugeordnet werden (das erste Bit scheint immer ein Vorzeichen zu sein. Short, char (beide 2 Bytes gross) und was es sonst noch gibt, helfen da auch nicht weiter. Auch die Ausgabe kann nicht ohne Kunstgriffe sauber statt finden. Führende Nullen werden unterdrückt, dafür werden bei Werte über 127 oder unter 0 (schwer zuzuordnen) mit 32 Stellen angezeigt.Da hat Sun sicher noch Handlungsbedarf ;-(. Somit rate ich; wenn man auf Bitebene (bzw. auf Bytes) zugreifen muss oder es mit Binärdateien zu tun hat, sich an anderen Sprachen zu bedienen (Beispiel C bzw C++) byte B1 = 0b00101011 (entspricht der Zahl 43) byte B2 = 0b00001111 (entspricht der Zahl 15) Bits invertieren ----> B1 = 00101011 -> Bits mit "AND" vergleichen (Bit wird gesetzt wenn BEIDE Bits an der selben Stelle gleich 1 sind). ----> B1 = 00101011 ----> B2 = 00001111 B1 Bits mit "OR" vergleichen (Bit wird gesetzt wenn EIN Bit an der selben Stelle gleich 1 sind). ----> B1 = 00101011 ----> B2 = 00001111 B1 Bits mit "XOR" vergleichen (Bit wird 0 wenn beide Bist an der selben Stelle gleich sind,). ----> B1 = 00101011 ----> B2 = 00001111 B1 Bits werden um die angegebenen Anzahl Stellen nach rechts verschoben. ----> B1 = 00101011 B1 Bits werden um die angegebenen Anzahl Stellen nach rechts verschoben und mit 0 aufgefüllt. ----> B1 = 00101011 B1 Bits werden um die angegebenen Anzahl Stellen nach linka verschoben. ----> B1 = 00101011 B1 Seitenanfang Zuweisungs OperatorenNatülich kann man auch mit Java den Variablen (je nach deklarierten Datentyp) Variablen einen Wert zuweisen. In Java gibt es auch Zuweisungsoperatoren, die gleich bei der Zuweisung den Wert bearbeiten3 Variablen wurden deklariert mit dem Datentyp int, double, String Einfache Zuweisung int ->evtl. alter Wert wird überschrieben Ergänzende Zuweisung int ->alter Wert (6) wird um (5) erhöt. Weiteres Dividierende Zuweisung int ->alter Wert (11) wird durch (5) geteilt. Integer "schluckt" die Nachkommastellen Multiplizierende Zuweisung int ->alter Wert (2) wird mal (5) multipliziert. Ich lasse bewusst alle logische (Bit) Zuweisungen weg, weil ich kaum glaube, dass jemand Java auf "Bitebene" benutzt. Zuweisungen werden natürlich auch für den Klassen-Datentyp String benutzt: Einfache Zuweisung String ->evtl. alter Wert wird überschrieben Ergänzende Zuweisung String ->alter Wert (Hallo) wird mit ( Welt) ergänzt. Bedingte Zuweisung (analog zu IF/ELSE) ist ebenfalls möglich und kann viel Programmcode ersparen Variable Weitere RegelnAusser der etwa ein Duzend Stufen zählende Verarbeitungsprioritäten (analog der arithmetischen Punkt- vor Strichregel) gibt es keine nenneswerte Regeln. Jedoch empfehle ich verkettete Operationen IMMER zu klammern. Das ist übersichtlicher, als immer die ganze Verarbeitungsprioritätentabelle zu berücksichtigenACHTUNG Falle: Bei Operationen mit Operanden unterschiedlicher Genauigkeit, ist das Resultat immer die höhere Genauigkeit. int/float = float Der Compiler ist recht kleinlich und lässt auch Absurditäten (die eigentlich den Regeln entsprechen) wie ein "o = ++i--;" nicht zu Seitenanfang Download des Sourcecode mit Beispiele DatentypenQuelle der nachbearbeiteten Tipps |